Extensible Markup Language (XML) is a meta-markup language that provides a format for describing structured data. XML is similar to HTML in that it is a tag-based language. By virtue of its tag-based nature, XML defines a strict tree structure or hierarchy. XML is a derivative of Standard Generalized Markup Language (SGML) that provides a uniform method for describing and exchanging structured data in an open, text-based format. XML utilizes the concepts of elements and namespaces. Compared to HTML, which is a display-oriented markup language, XML is a general-purpose language used to represent structured data without including information that describes how to format the data for display.
SGML a system for organizing and tagging elements of a document. SGML was developed and standardized by the International Organization for Standards (ISO) in 1986. SGML itself does not specify any particular formatting; rather, it specifies the rules for tagging elements. These tags can then be interpreted to format elements in different ways.
SGML is used widely to manage large documents that are subject to frequent revisions and need to be printed in different formats. Because it is a large and complex system, it is not yet widely used on personal computers. However, the growth of Internet, and especially the World Wide Web, is creating renewed interest in SGML because the World Wide Web uses HTML, which is one way of defining and interpreting tags according to SGML rules.
Within an XML document, namespace declarations occur as attributes of start tags. Namespace declarations are of the form “xmlns:[prefix]=[uri]”. A namespace declaration indicates that the XML document contains element names that are defined within a specified namespace or schema. Prefix is an arbitrary designation that is used later in an XML document as an indication that an element name is a member of the namespace declared by URI. The prefix is valid only within the context of the specific XML document. “URI” or universal resource indicator is either a path to a document describing a specific namespace or schema or a globally unique identifier of a specific namespace or schema. A URI is valid across all XML documents. Namespace declarations are “inherited”, which means that a namespace declaration applies to the element in which it was declared as well as to all elements contained within that element.
One exemplary usage of XML or HTML is the exchange of data between different entities, such as client and server computers, in the form of requests and responses. A client might generate a request for information or a request for a certain server action, and a server might generate a response to the client that contains the information or confirms whether the certain action has been performed. The contents of these requests and responses are “XML and HTML documents”, which are sequences of characters that comply with the specification of HTML or XML. Part of the document exchange process between clients and servers involves parsing the XML documents when they are received.
After a client generates a request for information, and receives an XML or HTML document, often within the XML or HTML documents, tables are generated that display information in a format that is not in an order desired by the user. For example, in searching for a product on a Web site, a list of items may appear in no particular order or in an order not immediately apparent to a user. For example, the items may be based on a product number, but the columns shown to a user may not include product numbers and there is no indication of a relationship in the data. Moreover, a user viewing a table in a document often would like to reorder the table based on the table content, such as data pricing, product name and the like. Current methods addressing table reordering are cumbersome and involve resending a request for additional information or require a client-side application that works with a dynamic HTML or special HTML tags or having a Web browser interact with an Excel spreadsheet function. Such method further can require programming a table on the client side with DHTML and JavaScript to include the additional functionality. Since added programming effort and skill is required to enable a table included in a Web page to include additional functionality, most tables in Web pages do not have user-reorder capable tables. Aside from the inherent difficulties with enabling tables to be programmed with reorder functions on a Web page, current methods of client-side manipulations of tables require awkward techniques. For example, a user could copy a table from a Web page and paste the data into a spreadsheet, but this requires an end user to own a copy of the software and own a license for the software, such as Excel software.